SOQL Language Support
Use the query operations to retrieve records from a single object. When an entity name is provided instead of a query, the operation is assumed to be a SELECT * FROM <sObject>. All operations are logged to SLAM_Activity_Log
Speediful automatically parses and expands certain query syntax:
SELECT * FROM <sObject>SELECT FIELDS(CUSTOM) FROM <sObject>SELECT FIELDS(STANDARD) FROM <sObject>SELECT FIELDS(ALL) FROM <sObject>
This parsing means that you can perform a SELECT FIELDS(...) operation without having to specify a LIMIT clause as would otherwise be required by SOQL
Relationship fields are supported by all APIs e.g. SELECT Account.Name, Account.Type, FirstName, LastName, Email, Owner.Name FROM Contact
Some examples of SOQL queries you can pass
-
LIKE filtering:
@query = 'SELECT * FROM Account WHERE Name LIKE ''%United Oil%''' -
Date filtering:
@query = 'SELECT * FROM Account WHERE CreatedDate > 2025-08-01T01:02:03Z' -
Date function filtering:
@query = 'SELECT * FROM Account WHERE LastModifiedDate > N_DAYS_AGO:20' -
Relationship fields:
@query = 'SELECT Id, Owner.Name, FIELDS(CUSTOM) FROM Account LIMIT 1000'
Deleted and archived records (which in particular, applies to Task and Event objects), can be retrieved by passing parameter @queryAll = 1 into the SLAM query procedure
Bulk jobs that fail on the client side but complete on the Salesforce server can be retrieved using SLAM_download_job
Note that for very wide tables (Salesforce supports tables with over 900 custom fields), SELECT * query operations can exceed the 10,000 character SOQL limit. Speediful automatically manages these limitations for the user behind-the-scenes and provides a singular table with all columns requested at the end of the process. There are length limitations in regards to the command that is sent to Speediful from SQL Server of 4,000 charactes. Long SELECT statements may exceed this limit and fail to start Speediful correctly.
SOAP Query Limitations
Aggregate queries via the SOAP API are not supported at this time e.g. SELECT Type, SUM(AnnualRevenue) FROM Account
Subqueries are not supported e.g. SELECT Name, Type, (SELECT FirstName, LastName, Email FROM Contact) FROM Account
In both of these cases you will be better served copying the required sObject records to the database and performing the equivalent SQL query.